# SPDX-License-Identifier: GPL-2.0-only
#
# AIC7XXX and AIC79XX 2.5.X Kernel configuration File.
# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#7 $
#
config SCSI_AIC7XXX
	tristate "Adaptec AIC7xxx Fast -> U160 support"
	depends on (PCI || EISA) && SCSI
	select SCSI_SPI_ATTRS
	---help---
	This driver supports all of Adaptec's Fast through Ultra 160 PCI
	based SCSI controllers as well as the aic7770 based EISA and VLB
	SCSI controllers (the 274x and 284x series).  For AAA and ARO based
	configurations, only SCSI functionality is provided.

	To compile this driver as a module, choose M here: the
	module will be called aic7xxx.

config AIC7XXX_CMDS_PER_DEVICE
	int "Maximum number of TCQ commands per device"
	depends on SCSI_AIC7XXX
	default "32"
	---help---
	Specify the number of commands you would like to allocate per SCSI
	device when Tagged Command Queueing (TCQ) is enabled on that device.

	This is an upper bound value for the number of tagged transactions
	to be used for any device.  The aic7xxx driver will automatically
	vary this number based on device behavior.  For devices with a
	fixed maximum, the driver will eventually lock to this maximum
	and display a console message indicating this value.

	Due to resource allocation issues in the Linux SCSI mid-layer, using
	a high number of commands per device may result in memory allocation
	failures when many devices are attached to the system.  For this reason,
	the default is set to 32.  Higher values may result in higher performance
	on some devices.  The upper bound is 253.  0 disables tagged queueing.

	Per device tag depth can be controlled via the kernel command line
	"tag_info" option.  See Documentation/scsi/aic7xxx.txt for details.

config AIC7XXX_RESET_DELAY_MS
	int "Initial bus reset delay in milli-seconds"
	depends on SCSI_AIC7XXX
	default "5000"
	---help---
	The number of milliseconds to delay after an initial bus reset.
	The bus settle delay following all error recovery actions is
	dictated by the SCSI layer and is not affected by this value.

	Default: 5000 (5 seconds)

config AIC7XXX_BUILD_FIRMWARE
	bool "Build Adapter Firmware with Kernel Build"
	depends on SCSI_AIC7XXX && !PREVENT_FIRMWARE_BUILD
	help
	This option should only be enabled if you are modifying the firmware
	source to the aic7xxx driver and wish to have the generated firmware
	include files updated during a normal kernel build.  The assembler
	for the firmware requires lex and yacc or their equivalents, as well
	as the db v1 library.  You may have to install additional packages
	or modify the assembler Makefile or the files it includes if your
	build environment is different than that of the author.

config AIC7XXX_DEBUG_ENABLE
	bool "Compile in Debugging Code"
	depends on SCSI_AIC7XXX
	default y
	help
	Compile in aic7xxx debugging code that can be useful in diagnosing
	driver errors.

config AIC7XXX_DEBUG_MASK
        int "Debug code enable mask (2047 for all debugging)"
        depends on SCSI_AIC7XXX
        default "0"
        help
	Bit mask of debug options that is only valid if the
	CONFIG_AIC7XXX_DEBUG_ENABLE option is enabled.  The bits in this mask
	are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the
	variable ahc_debug in that file to find them.

config AIC7XXX_REG_PRETTY_PRINT
        bool "Decode registers during diagnostics"
        depends on SCSI_AIC7XXX
	default y
        help
	Compile in register value tables for the output of expanded register
	contents in diagnostics.  This make it much easier to understand debug
	output without having to refer to a data book and/or the aic7xxx.reg
	file.
